package com.techsoul.common.core.pojo.vo;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 菜单表 sys_menu
 *
 * @author liuen
 */
@Data
public class MenuVo {

    @ApiModelProperty("子节点列表")
    private List<MenuVo> children;

    @ApiModelProperty("ID")
    private String id;

    @ApiModelProperty("PID，父级编号")
    private String pid;

    @ApiModelProperty("祖级ID集合（多个用逗号隔开）")
    private String ancestorIds;

    @ApiModelProperty("祖级名称集合（多个用逗号隔开）")
    private String ancestorNames;

    @ApiModelProperty("菜单名称（允许重复）")
    private String menuName;

    @ApiModelProperty("菜单全称（不允许重复）")
    private String menuFullName;

    @ApiModelProperty("菜单类型（数据字典sys_menu_type）")
    private String menuType;

    @ApiModelProperty("组件地址")
    private String componentPath;

    @ApiModelProperty("路由地址")
    private String routerPath;

    @ApiModelProperty("菜单图标")
    private String menuIcon;

    @ApiModelProperty("菜单颜色")
    private String menuColor;

    @ApiModelProperty("权限标识")
    private String permissions;

    @ApiModelProperty("是否缓存（数据字典sys_yn_type，默认1-是）")
    private String isCache;

    @ApiModelProperty("是否为外链（数据字典sys_yn_type，默认1-是）")
    private String isExternalLink;

    @ApiModelProperty("是否显示（数据字典sys_yn_type，默认1-是）")
    private String isVisible;

    @ApiModelProperty("归属应用程序类型（数据字典sys_app_type）")
    private String appType;

    @ApiModelProperty("层次级别，根为0")
    private Integer treeLevel;

    @ApiModelProperty("是否为叶子节点（数据字典sys_yn_type，默认1-是）")
    private String isLeaf;

    @ApiModelProperty("排序")
    private Integer treeSort;
;
    @ApiModelProperty("状态")
    private String status;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("是否有效")
    private String isValid;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @ApiModelProperty("更新人")
    private String updateBy;

    @ApiModelProperty("更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @ApiModelProperty("模块")
    private String module;

}
